BTParentTask = BTTask:New()

local this = BTParentTask

function this:New()
	local o = {}
	setmetatable(o, self)
	self.__index = self
	o.currentChildIndex = 0  --当前运行到第几个子节点
	o.currentChildTask = nil --当前运行的子节点
	o.childTasks = {}        --子节点列表
	return o
end

--添加子节点
function this:AddChild(task)
	local index = #self.childTasks + 1
	task.index = index
	task.layer = self.layer + 1
	task.parent = self
	task.root = self.root
	self.childTasks[index] = task

	if (task.taskType == BTTaskType.Root) then
		task:UpdateLayer()
	end
end

--是否有子节点
function this:HasChild()
	if (#self.childTasks > 0) then
		return true
	else
		return false
	end
end

--获取子节点数目
function this:GetChildCount()
	return #self.childTasks
end

--获取下一个要执行的子节点
function this:GetNextChild()
	if (#self.childTasks >= (self.currentChildIndex + 1)) then
		self.currentChildIndex = self.currentChildIndex + 1
		return self.childTasks[self.currentChildIndex]
	end
	return nil
end

--重置
function this:Reset()
	self.currentChildIndex = 0
	self.currentChildTask = nil
end